The present invention relates in general to video signal processing. More specifically, the invention provides a method and system for motion estimation with multiple vector candidates. Merely by way of example, the invention is described as it applies to telescopic motion estimation, but it should be recognized that the invention has a broader range of applicability.
Video signal processing has been widely used for storing and transmitting visual information. The visual information can be represented by video data, which can be compressed in order to reduce size of data files. The compression can be performed under different formats, such as MPEG-1, MPEG-2, MPEG-4, H.264, and AVS.
Many of these formats can employ both lossless compression techniques and lossy compression techniques. For example, the lossless compression techniques may include variable length coding, run length coding, relative encoding, and arithmetic coding. In another example, the lossy compression techniques may include motion estimation with transformation and quantization of residual data.
FIG. 1 is a simplified conventional system for video and audio compression. The system 100 includes a video preprocessing system 110, a video encoding system 120, an audio preprocessing system 130, an audio encoding system 140, and a transport stream generator 150. As shown in FIG. 1, the video preprocessing system 110 receives a video signal, for example, from a video source. The video signal is preprocessed and then received by the video encoding system 120. For example, the encoding includes motion estimation and variable length coding. Additionally, the audio preprocessing system 130 receives an audio signal, for example, from an audio source. The audio signal is preprocessed and then received by the audio encoding system 140. The encoded video signal and the encoded audio signal are received by the transport stream generator 150. The transport stream generator 150 can multiplex the encoded video signal and the encoded audio signal, perform time synchronization, and generate one or more transport streams.
As implemented by the system 100, the motion estimation often is used to approximate an image frame by using data from another image frame. For example, the motion estimation includes frame segmentation, block matching, and vector coding. Among them, the block matching can be computationally intensive, and its results can significantly affect quality of video images that are compressed with motion estimation.
Hence it is highly desirable to improve techniques for motion estimation.